FreeProxy Online Help

Quick Start to FreeProxy

Setting up FreeProxy

If you want to start using FreeProxy without reading the rest of the manual, follow these steps:

  1. From the Windows menu, select FreeProxy.
    • Start è Programs è FreeProxy è Freeproxy Control Centre
    • The Control Centre will load Default.cfg automatically the first time its run. (You can change this; more about this later.)
  2. Select the Start/Stop FreeProxy button

    • Select Start FreeProxy as a service

This action will install FreeProxy as a service ready to use by other computers on your network.

Setting up the browser (Internet Explorer)

Each client computer should be set up to point to port 8080 on the server running FreeProxy. For example, if the name of the computer connected to the internet is MYSERVER and you have set up FreeProxy as described above, then you would set up Internet Explorer as follows (Tools è Internet Options è Connections è LAN Settings …). Press OK to save the settings.


Overview of FreeProxy

Preface

This software is free. Please report any problems to the support email address below. Updates and further development continues to occur. Latest information can be found on the web site. Contact information can be found below.

What FreeProxy does

FreeProxy is a proxy program which enables a single connection to the internet to be shared by other computers on a network. Typically, one computer connects to the internet service provider and the other computers in the local network "point" to the connected computer running the FreeProxy program. No other software is required in the client systems.

The front to the proxy is the FreeProxy Control Centre. The Control Centre enables you to enter configuration parameters and start/stop the server program. It is also possible to set up a configuration ('Config') file and control the FreeProxy program directly without the use of the Control Centre but this is not covered in the help.

FreeWeb

From V3 onwards, FreeProxy includes a built in, HTTP/1.1 compatible web server which you can enable. The web server is fast and stable. HTTP compliance will continue to be increased and information can be found on the web site regarding the available version. The web server, although built in to FreeProxy, is called 'FreeWeb'. Freeproxy can run in many modes; only as a web server; only as a proxy; both as a proxy and web server.

What you need

System Configuration

Server: Windows 98, NT4 (>=sp4), Windows 2000 or Windows XP. (Does not work on Windows 95)

Client: An operating system, browsers etc.

Installation

The package includes both an install and un-uninstall feature.

Getting Help

All queries addressed to the email below will be answered as soon as possible:

gregr@alphalink.com.au

Alternatively view the Q&A section at the site:

http://www.alphalink.com.au/~gregr

Freeware

This product is free. However, if you would like to donate US $10 (or any other amount) to on-going development of this product, it would be most gratefully received. Please send to Greg Robson-Garth, 83 Napoleon St, Eltham, 3095, Australia. This is entirely optional.

Overview of FreeProxy

Architecture

In the diagram above, one system (the FreeProxy "Server") is connected to the internet. All "Client" systems can access the internet via the FreeProxy server.

Features

FreeProxy has these features which can be used/not used as required:

Demand Dialing

Whenever a connection is attempted, dial the associated Internet Service Provider.

Automatic dialing:
 Set up the connection at specific times.

Calendar control:
 Create weekly calendars to determine
- when automatic dialing should occur
- when demanded connections to the internet can be made

Session Control:
 Keep track of session times and allow access to the ISP based on total time used

Hangup
 Hangup based on inactivity or time.

Run options
 Run FreeProxy as an NT/2000 service or in console mode. Will only work in console mode on Windows 98.

Trace information
 FreeProxy provides 3 levels of trace information as well as the ability to display all the IP traffic being sent and received.

Protocols
 Currently, only HTTP, POP and SMTP are catered for.

URL Filter

Prevent access to certain internet sites

Logging

Log access and attempts to access forbidden sites.

Configurable Web Server

Serve Web Pages to browsers

Note: all these features can be used, if required. Or, all can be disabled.

Components

FreeProxy consists of 3 parts:

  • The FreeProxy Control Centre program which helps you set up the proxy parameters and controls the starting and stopping of the proxy
  • TheFreeProxy/FreeWeb server program which does the actual proxy/web serving work
  • FreeProxy supporting files

Access to the FreeProxy client program is installed in the Windows "Start" menu during setup. All interaction with FreeProxy occurs from the Control Centre. This will manage all the components.

To start using FreeProxy select:

Start è FreeProxy è FreeProxy Control Centre

Upgrading from version 1.00

FreeProxy V1.00 used a parameter file as input to the server program. The format of the parameter file has changed and users will now have to use the Control Centre to input data. The use of the (new-format) parameter file is still possible however details will have to be obtained from the support email address.

Upgrading from version 2.00

A new control centre has been developed. The number of parameters are usually small and therefore a conversion program has not been developed. Please re-type your V2. parameters into version 3.

Approach

Typically, you set up the parameters using the control centre, save them to a local file on disk. Start the FreeProxy server from the control centre and then close the control centre. FreeProxy will remain running as a service until stopped and removed. You can stop and remove the server from within the Control Centre.

The FreeProxy Service (NT/2000 only)

The FreeProxy service is managed from the Control Centre. The advantage of using a service is that a user session does not have to be active for the service to function. Once installed and started, the service will manage the connections as you have requested, dialing and redirecting as required without having a user logged on.

Running FreeProxy in Console Mode and Log Files

FreeProxy can be run as a console program (ie not as a service) to enable you to trouble shoot the network connections. You can use the Trace feature from the Control Centre to specify the level of "Debugging" required. Messages are written to either the name specified in the Port redirection entry, or if not there to the Trace file or if not specified to the file "FreeProxy.Log"; in the default directory.

From V3, debugging traces have been removed for the sake of performance. If you are experiencing problems, a debug version of he software can be obtained by emailing Support (see Getting Help above). This version will display a detailed program trace which is really only meaningful to the developer.


The FreeProxy Control Centre

Purpose and features

The control centre enables you to define configuration parameters to control how FreeProxy/FreeWeb will work. (Note, for details of the Architecture of FreeProxy click here.)

File menu

The file menu has the usual options:

File è New: Clear all data in the Control Centre

File è Open: Open an exiting FreeProxy configuration file (.cfg)

File è Save, Save As: Save the currently loaded data to a file. As soon as the file has been saved, the name in the window title changes to the name saved. If a change has been made to any data, an astersk (*) appears in the title.

File è Exit: Exit the control centre.

Define Menu

Each of these options also can be selected from one of the buttons on the Control Centre. By selecting one of the options or pressing the button, you will open a new page. See below for the explanation

Start/Stop Menu

See Start/Stop FreeProxy below.

NOTE: To define a new option, press a button. To edit an existing option, double-click on the line you want to change.

Define Ports button:

Defines which ports are being redirected. You specify the client ports and details of the connections. More Info.

Define RAS

Conditions and information relating to dialing the remote connection. More Info.

IP Service

Define the Web Server (FreeWeb) configuration. More Info

Define Calendars

Define calendars to control access to the internet. More Info.

Define Trace Data

View details of the messages between the clients and the internet. More Info.

Define URL filter

Prevent or specifically allow access to certain internet sites. More Info.

Start/Stop FreeProxy

Start or stop the NT/2000 service or start FreeProxy as a console program. More Info.

Approach

Initial Approach

You can load the default configuration (default.cfg) which contains only one connection. You can add to this and save under a new name. Default.cfg is placed in the installation directory which is usually C:\Program Files\Hand-Crafted Software\FreeProxy

Start the service using the Start/Stop button. Connect to the service using a browser on another computer and ensure that everything is working.

Default.cfg is set up to connect directly to the internet. Also, your browser will need to be set up to address the server running FreeProxy at port 8080. Have a look at the Quick Startup here.

Once you have your network functioning and connections working, then implement other features.

Define a calendar

If you want to constrain the times when connections can be made or want to implement Auto Dialing and Auto Hang Up define a calendar to indicate when these feature will be invoked.

Defining RAS

RAS defines the parameters associated dialing, dial on demand, auto dialing etc. Note that before you can implement Auto dialing and auto hangup, you must define a calendar. A calendar can be attached to the RAS definition to indicate when to autodial/hang up or when to allow demand access.

Defining the WebServer

It would be usual to define a WebServer using port 80. However, if your web page code is able to direct requests back to FreeWeb on different ports, then you can run as many web servers as you wish however, each would have to be listening on a different port.

Modify the Port redirections

Against each port defined here, you can attach RAS definitions and calendars. Add other port redirections as required.

Add in URL filtering

Add in any URLs to which access should be blocked (Proxy Users only).


Define Ports

Purpose and features

The Define Ports dialog box is at the centre of the proxy. It defines the connections you want to make to the Internet.

You can use FreeProxy to connect to mail server, another proxy server, any server using the tunnel facility or directly to the internet.

See the end of this page for some examples.

Reference

Name:

Any name consisting of spaces, numbers and letters to identify this particular redirection. Eg 'Internet', 'Mail 001' or 'ICQ50'

Protocol

Select one of:

"None" - FreeProxy acts as a tunnel.

"HTTP" - The normal internet protocol.

"POP" and "SMTP" - Required for email

"Telnet" - Required for Telnet

Client Port

The port number that the browsers will specify in their internet options. Usually (but not necessarily)

8080 for internet proxy

25 for outgoing mail (SMTP)

110 for incoming mail (POP3)

23 for Telnet

If there is a conflict with existing ports then change these numbers as required. The port numbers used here should be the same port used the program connecting to the FreeProxy.

For tunnelling, use any port.

If you have a conflict see Resolving Port Conflicts

Proxy Server

You will need to connect to a proxy server if you need to access a mail server such as pop or smtp. See How to Set up Mail here. If you need to connect to your ISP proxy server, then click the 'Use proxy server ?' check box, and fill in the proxy server name.

If you do not need access to any proxy server, leave the 'Use proxy server ?' unchecked.

If you select none, SMTP, POP or Telnet as the protocol, you will have to enter a server name.

The Server can either an address in the form <computer name>.<domain> name or an IP address. For example:

melbourne.alpharand.com.au

192.168.054.7

proxy.biglake.com

Use PASV

When connecting to a FTP server from the client browser (eg: ftp://ftp.microsoft.com), then you can elect to use a passive mode connection. In non-passive mode connections, FreeProxy opens a listening port for the transfer of data from the remote server. In passive mode, FreeProxy requests the remote server to open the listening port for the transfer of data. Passive mode is marginally more secure and can prevent blockage by a firewall. Also see here

Server Port

The port number of the proxy you are connecting to. Normally you would use the default displayed but they can be changed if required.

Connect Timeout

A value which FreeProxy will use to wait for a connection. If the this time is exceeded, then FreeProxy will cancel the communication function it is attempting and wait for the next event. Default: 30 seconds.

Use Local Binding ?

To open the connection on a specific interface, check the box and use the drop down to select a specific Network interface and IP address. If left unchecked, the server will listen on all interfaces. For a detailed explanation see here.

Read/Write Timeout

A value which FreeProxy will use to wait for the remote to respond or acknowledge a read or write event. Default: 30 seconds.

Log File

If trace has been set up to log information, then this is the log file that will receive the trace.

Report all connects ?

Setting this to "yes" will report in the log file every URL retrieved by the client. Trace information (see here) must be set to at least warning level.

Calendar

A Calendar specified here will constrain the times that this port re-direction may be used. Users will not be able to connect outside of the times on the calendar. No calendar here (Option 'No') will allow access at all times. Before any calendars are listed here, they would first have to be created using the 'Define Calendars' option in the FreeProxy Control Centre.

Demand Dial RAS

It is possible to demand dial a connection. This means that when a users starts their browser and connects to FreeProxy using this port, FreeProxy will dial the connection mentioned here if no connection is currently active. This dropdown box defaults to 'No' (Don't dial). It will also list RAS connection information that was set up using the 'Define RAS' option in the FreeProxy Control Centre.

Delete

Deletes the port information being displayed.

Cancel

This button will cancel changes and return to the FreeProxy Control Centre.

Done

Finishes editing the current dialog box and returns to the FreeProxy Control Centre.

Example

This example shows both the view of Internet Explorer and the FreeProxy Control centre.

Assume that you wish to connect your server (192.168.20.9) to the internet. You have set up a Port entry called 'Internet' but you want to allow access to the port at all times. You have decided to use port 6300 for the client port. The Port Redirection entry will look like this:

The Internet Explorer 6 entry will look like this (in IE 6 select Tools è Internet Options è Connections è LAN Settings):


FreeWeb

Purpose and features

Define parameters for FreeWeb.

Reference

Name:

Any name consisting of spaces, numbers and letters to identify this particular redirection. Eg 'WEBServer'

Service

At this time only "Web Server" is available:

Listening Port

The port number that the browsers will specify in their internet options. Usually (but not necessarily)

Normally 80

If there is a conflict with an existing port then it's likely that a web server is already running; either FreeWeb or some other web server. Unless you use port 80, the browser will not be able to connect. You can change the port number but if you do then each URL you enter into the browser will have to also include the port number.

For example, if you change the default port number from 80 to 81, then you'd have to enter the port number in the URL as follows:

http://yourserver.com:81

If you have a conflict see Resolving Port Conflicts

Root Path

The root path is the path name prefix for all web pages retrieved from the web server. This adds a strong measure of protection to your server by limiting the access to only a specific path. For example, if the root path name is C:\FreeWeb\WebPages, on your server called myserver01.com, if the request is received for http://myserver01.com/info/today.htm, FreeWeb will retrieve C:\FreeWeb\WebPages\info\today.htm.

Default Web Page

The web page to be retrieved if a request is received for the root path. If a request is filled in as http://myserver01/ by itself, and the Default Web page is called index.htm, then FreeWeb will access <Root Path Name>\index.htm.

Allow incoming/Incoming Path

Not currently used. However, if you check Allow Incoming, then you must fill in something in the Incoming Path.

Use Local Binding ?

To open the connection on a specific interface, check the box and use the drop down to select a specific Network interface and IP address. If left unchecked, the server will listen on all interfaces. For a detailed explanation see here.

Address Alias

On some messages, the HTTP protocol requires the sender to specify its address. Often, there are many address alias's that any one computer can be known as and the address it knows itself as may not be the address you wish to publicise to the users. This field is defaulted to the computer name but should be changed to the name that users will fill in as the server URL.

Idle Timeout

The time before FreeProxy will timeout an idle connection.

Read/Write Timeout

A value which FreeProxy will use to wait for the remote to respond or acknowledge a read or write event. Default: 30 seconds.

Log File

If trace has been set up to log information, then this is the log file that will receive the trace.

Report all connects ?

Setting this to "yes" will report in the log file every URL retrieved by the client. The trace level must be set to at least 'Warning' Level. See here.

Calendar

A Calendar specified here will constrain the times that this port may be used. Users will not be able to connect outside of the times on the calendar. No calendar here (Option 'No') will allow access at all times. Before any calendars are listed here, they would first have to be created using the 'Define Calendars' option in the FreeProxy Control Centre.

Delete

Deletes the information being displayed.

Cancel

This button will cancel changes and return to the FreeProxy Control Centre.

Done

Finishes editing the current dialog box and returns to the FreeProxy Control Centre.


Define RAS

Purpose and features

The RAS connection dialog box associates various conditions with a Dial Up networking entry. When FreeProxy dials the ISP, it will request Dial Up Networking (DUN) to make the connection. All the entries in the DUN entry remain in effect. Make sure you test this feature on your system to ensure that its working as you want it to. The best approach is to start FreeProxy as a console program initially with full trace information. You will be able to monitor each step of the process as it occurs.

Reference

Name:

Any name consisting of spaces, numbers and letters to identify this particular RAS Entry. Eg 'AlphaRand', 'My ISP' or 'Internet'.

Phone book name

The name of the phonebook containing the RAS entries. To use the default phone book, leave this entry blank.

Dial up entry

Use the drop down to select one of the Dial Up Networking entries to dial.

User, Password and Domain

Enter the User, Password and Domain for access to the remote server. Usually, the 'Domain' is not required if logging onto a Unix/Linux type of server. Any field not required for the particular remote server can be left blank. This information is encrypted before being stored in the config file.

Dial Timeout

FreeProxy will dial the connection and then wait the number of seconds specified here. If the connection is not complete within the allotted time, the connection is attempt is aborted.

Auto Dial

This drop down is either 'No', or one of the calendars. If 'No', no autodialing can be done. If you select one of the calendars, then FreeProxy will dial the specified DUN entry at the leading edge of each time range specified in the calendar. Obviously, if the particular DUN entry has already been connected, no connection attempt will be made.

For example, if the selected calendar specifies a range of 00:00-05:00, 07:00-08:00 for a particular day, then, on that day, dialing will occur at 00:00 and 07:00, if that DUN entry had not been connected at that time. If the connection fails at any time during those time ranges, then FreeProxy will attempt to reconnect. Note: At 05:01 and 08:01, FreeProxy will NOT disconnect unless 'Auto hangup' has been requested.

Auto Hangup

If 'No', FreeProxy will not automatically hang up the connection at the end of the time range specified in the Auto Dial calendar.

If 'Yes', FreeProxy will automatically hang up the connection if the current time is outside of all the time ranges specified for that particular day. If the time ranges are 00:00-05:00, 07:00-08:00, then FreeProxy will Hang Up the connection during the periods 05:01-06:59 and from 08:01 onwards for that day.

Demand Dialing

This option controls when this entry can be demand dialled. It can be

'No' - Do not allow this entry to be demand dialled

'Anytime' - Demand dial at any time

<Calendar> - A calendar specifying time ranges during which demand dialing can occur.

Inactivity hangup

No - Do not hang up due to inactivity on this DUN entry

Yes - Use the information in the fields that follow to hang up the line

Inactivity depends on the particular system youre connected to. There is often handshake data being communicated between systems although there is not user initiated communications underway. The best way to check what is inactivity is to use the DUN monitor to establish the Sent and Received Dial Up traffic over say, a 10 minute period. You can then fill this information into the entries that follow.

Time, Receive and Sent Threshold

In the 'Time' field select the period during which FreeProxy should monitor inactivity. The time is expressed in seconds. 10 minutes would be specified as 600.

If during the specified 'Time', there is less that the 'Receive' AND 'Sent' bytes monitored on the DUN connection, the entry will be hung up. Note: either or both of 'Sent' or 'Received' must be entered. If you enter 0 for either of these, then this particular Threshold will be ignored. These counters are not implemented for windows 98.

Connections

The connections limit either the number of connections or the duration of the connection.

  • Max Connects per Day: No more than this number of connections can be made. FreeProxy will not exceed this number.
  • Max Time per Session: session exceeds this time, then hang up the connection.
  • Max Time per day: As soon as the total connection time for the day exceeds this time, then hang up the connection

Note: all time in seconds. To disable any of these connection thresholds, enter zero (0).

Delete

Deletes the RAS information being displayed.

Cancel

Cancel changes return to the FreeProxy Control Centre.

Done

Finishes editing the current dialog box and returns to the FreeProxy Control Centre.

Example

This example shows how to link the RAS entry to the Port Entry and the associated Dial Up Networking dialog box. A calendar constrains the connection times.

Assume that you wish to connect your Proxy Server which is running FreeProxy (192.168.20.9) to the internet. You have set up a RAS entry called 'Alpha' and you want to allow Demand Dialing only in the mornings (requires a calendar). You have decided to use port 6300 for the client port. You allow demand dialing with a hangup after 10 minutes of idle time. You measure idle time as 10 minutes of less than 3000 bytes received and less than 333 bytes sent.

The Calendar entry looks like this:

The RAS Entry will look like this:

The Port Redirection entry will look like this:

If your browser is Internet Explorer (IE) then the connection settings would be

The Dial Up Networking entry will look like this :


Define Calendars

Purpose and features

Calendars are weekly schedules which can be attached to Port and RAS Definitions to modify the times during which certain actions take place. For example, a calendar is used to schedule auto dialing. Times are specified in ranges per day.

Reference

Name:

Any name consisting of spaces, numbers and letters to identify this particular Calendar Entry. Eg 'Morning', or 'Weekend'.

Monday - Sunday

For each day specify time ranges in the form:

hh:mm-hh:mm [, hh:mm-hh:mm]

Midnight is 00:00 or 24:00 depending on whether at the start or end of the range. Here are some valid times:

00:00 - 23:30

10:22-15:20, 18:00-19:00, 21:30-24:00

12:00-12:01

Delete

Deletes the information being displayed.

Cancel

Cancel changes.

Done

Finishes editing, applies the changes to the calendar and returns to the FreeProxy Control Centre.


Define Trace Data

Purpose and features

This feature enables you to display a detailed trace of events and a dump of data being transferred between the server and clients. Primarily you’d use this for troubleshooting connection problems and, if necessary, displaying the actual of server-client messages. The results of the trace are sent to the console (if running in console mode) and to the log file if one is specified. Note that if individual Port definitions contain a log file, then this one is used instead for traffic/debug messages associated with the particular port.

If logging is on and network traffic is being logged, the performance of FreeProxy is significantly affected.

From V3.00 onwards, detailed program logging has been removed for performance reasons. A debug version is available if necessary. Please contact the support email.

Trace information will be created automatically if none is specified. The default is "No trace".

Reference

Debug Level:

'No Debug' - suppresses all debug messages other than error messages

'Show Warnings Only' - Only warning and error messages (required if you are logging connects)

'Show all displays' - Display all messages, warning, error and trace messages

Log Network Traffic

'No' - Suppress the display of network traffic

'Yes' - Display all messages sent and received between all clients and all servers

Log File

Name of the file to receive logging information

Cancel

Cancel changes.

Done

Finishes editing the current dialog box and returns to the FreeProxy Control Centre.


URL Filter

Note: This feature only applies to HTTP.

Purpose and features

This option enables you specify those URLs which are either specifically forbidden or specifically allowed. By default, or if the URL being retrieved is not specified in either of the "Allowed" or "Forbidden" lists, then the URL is processed. If the URL is found in the "Allowed" list, then the URL is processed. If the URL is found in the "Forbidden" list, a message is sent to the client and an entry is placed in the log file to this effect. The standard message simply displays "Access is Forbidden" but this can be changed if required.

URLs are only filtered if the port's definition is specifically set to the "HTTP" protocol.

Reference

Specifying URLs:

URLs exclude the leading protocol identifier ("http://" or "ftp://" etc) . A URL typed into the address field of the browser as "http://www.alpharand.com" is reduced to "www.alpharand.com" for comparison purposes.

Search arguments

Search arguments can contain wild cards.

#: Any single digit

&: Any single alpha character (a-z or A-Z)

?: Any single character

*: Any number of characters (any character)

^: Compare using the next character. eg ^# will look for a '#' in the URL and not a single alpha character. ^^ will look for a single ^

URL being accessed by the browser | Search argument in the "Allowed" or "Forbidden" fields. | Result
www.someplace.com | www.someplace.com | Matched
www.someplace.com | someplace.com | Not Matched
www.someplace.com | *someplace.com | Matched
www.someplace.com | www.someplace | Not Matched
www.someplace.com | www.someplace* | Matched
www.someplace.com | someplace | Not Matched
www.someplace.com | *someplace* | Matched
www.badsite.com | www.*.com | Matched
www.thisurl/*ss/%5/extra | www.*^*ss/%#/extra | Matched
www.thisurl/*ss/%5/extra | www.*%??&&&&& | Matched
www.thisurl/*ss/%5/ext99 | www.*%??&&&&& | Not Matched

Argument order

Arguments are searched in the order they appear in the list. As soon as a match is made, the web site is allowed/forbidden depending on the match. You can move the web sites relative to each other for different effects.

To forbid access to only www.badsite.com but allow access to all others, you would specify the following:

To allow access to only www.goodsite.com and forbid all others you specify the following in order

Add URL

Add a new URL to the end of the list

Delete URL

Place the cursor on the URL to delete and press this key

Change URL

Change the URL at the cursor location

Re-order é

Move the URL to a position higher up in the list

Re-order ê

Move the URL to a position lower down in the list

Done

Save the data.

Cancel

Cancel changes


Start/Stop FreeProxy

Purpose and features

This option enables you start and stop the FreeProxy server and also start the FreeProxy as a console program.

Freeproxy provides a full set of features on Windows NT and 2000. It is not possible to install FreeProxy as a service under Windows 98. It can be run in Console mode under Windows 98 providing a full proxy except for some statics reporting. Under Windows 98, Start Service, Stop Service and Refresh are disabled.

Reference

Start FreeProxy as a Service:

This button installs FreeProxy as a service with the currently loaded data. The button is only highlighted if the service is not currently running. To change the parameters currently being used, stop FreeProxy, change the parameters and save, and then restart FreeProxy.

Stop and Remove FreeProxy Service

Stop and remove the service from the service control manager. This option will not stop programs started in console mode. The button is only enabled if the service is currently running.

Start FreeProxy in Console mode

Starts the program by running it from the console. The program will start and then appear to 'hang' as it waits for a connection; this is normal behaviour. To end the program, press Control-C at the console. The program may take up to 6 seconds to close while it "cleans up" resources.

Refresh Status

Refreshes the service running status.

OK

End the dialog and re-display the FreeProxy Control Centre.


Reporting, Logs and Client Messages

Purpose

FreeProxy attempts to provide as much information about the connections as possible therefore enabling the Administrator to better control the use of the resource.

Logging enables the administrator to both analyse error events and to obtain information about connections. The following information is available:

Messages controlled from "Define Trace data"

No Debug - Only error messages which will terminate the connection are disiplayed. Fatal errors would prevent FreeProxy from starting.

Warning messages - an unexpected condition has arisen however FreeProxy can recover from the situation.

Trace messages - detailed program flow messages which can be used for Troubleshooting. From V3.00 trace messages have been removed from the standard release version for performance reasons. The debug version is available for troubleshooting. Please contact the support email.

Log Network Traffic - display all messages in hex and character format. This will only occur if FreeProxy is running in Console mode.

Messages controlled from "Define Ports"

Connection messages - If selected will display all connections made via this port. For this to occur, the protocol setting has to be "HTTP".

Messages resulting from "URL Filter"

FreeProxy will distinguish, in the comments of the message, whether the message connection has been specifically Allowed, Forbidden or the connection has been made assuming the default (the URL is neither allowed nor forbidden).

Statistics messages

At midnight, FreeProxy logs the connection statistics (Total connect time and number of connections) for the previous day for each RAS entry. If the FreeProxy service is stopped, the last 7 days statistics are logged.

Start/Stop Messages

Each start and stop of the FreeProxy service is logged

Log Files

If no log file is specified, then FreeProxy uses the default name "FreeProxy.Log". You can specify a general name in the "Define trace data" option. This name will then be used for all logging. You can also specify a specific log file for specific port connections.

Client Replies

Types of reply

Client replies are sent to clients to inform them about specific conditions which prevent their request from being fulfilled.

There are 6 possible reasons for FreeProxy refusing the client connection:

1. The connect time is outside the allowable time (http000.htm).

2. Either or both the total allowed connection time for the day has been exceeded or the number of connections for the day has been exceeded (http001.tm).

3. The server name specified in the Port Redirection is not accessible. For example, the server is invalid, no longer available or the connection to the ISP has not been made (http002.htm).

4. FreeProxy has timed out waiting for the connection to the specified server (http003.htm).

5. An error occurred while trying to dial the connection (http004.htm).

6. Connection forbidden by the URL filter (http005.htm).

Tailoring the replies

The contents of the reply messages can be changed by editing the associated html file in brackets above. When doing so, the html must not attempt to access any other objects. It must only contain formatted text. File names cannot be changed but the contents can be changed.

Log File Example

Connections listing

If you select "Report all connects", every connection and every object retrieved by the browser is logged for that particular HTTP port redirection. Here is a sample. Trace level must be set to "Warnings Only" for this list to be output.

This can be used as an audit trail if required.


Setting up email

Overview of Internet Email

FreeProxy can be used to proxy SMTP mail. This is typically referred to as "Internet Mail" and is exchanged by an Internet Service Provider (ISP).

Without FreeProxy, you would connect a mail client such as Outlook Express® or Outlook® directly to your ISP's mail servers. They often supply install kits for this. Under the covers, your mail client will be accessing two different servers; one for incoming mail and one for outgoing mail.

Note: Outlook Express enables you to set up "Hotmail" access. This is done in the normal way without the need for POP/SMTP servers being specified in the FreeProxy Control Centre, however, make sure that your internet browser settings on the computer you are running Outlook Express on is set up to access FreeProxy.

In this diagram, your ISP hosts 2 servers. The SMTP server handles outgoing email. All items presented to this server are on-sent to recipients. The POP server will hold your email until you are ready to retrieve it. When you connected to the POP server you retrieve your email. These connections are handled by your email client.

When your email client wants to send email, it connects to the SMTP server on port 25. When it wants to retrieve email, it connects to the POP server on port 110. The network traffic between the client and the SMTP server is represented by the orange line and the client/POP server by the green line.

When using FreeProxy, you no longer are connecting directly to the 2 email servers but rather via your own proxy server.

To complete the setup you will need to

  1. Configure the Email Client on each client computer to point to the FreeProxy server rather than the ISP servers.
  2. Configure FreeProxy to listen on specific ports, and direct email to the correct ISP server

Configuration for both these steps are shown below.

Configuring your email client.

Configuration is given here for both Outlook Express and MS-Outlook.

For these examples, we will name you Angela Smythe. You connect to servers as follows:

  • Your server running FreeProxy is named MYSERVER01
  • Your internet email address is Angela.Smythe@BigRiverISP.com
  • Your POP server is pop.BigRiverISP.com
  • Your mail server is mail.BigRiver.com

You MUST have all this information before you can proceed. If not, contact your ISP. If you are already connected directly to your ISP, this information would already be in your email client. You will have to change the information on the client systems connected to FreeProxy.

You should configure each mail client this way using the appropriate information.

Outlook Express Configuration

1. Start the configuration

From the Outlook Express menu, select
Tools èAccounts. Click on the Mail Tab, press the Add button and select Mail...
You should see the same as in the picture above.

2. Fill in your name.

This is the name your recipients will see on emails sent to them. Press Next.

3. Fill in your Internet Email address

and press Next

4. Fill in the server names

You will notice that here we use YOUR server names. NOT the ISP server. The connection to the ISP is handled by FreeProxy. What you set up here is the connection to the server running FreeProxy. This is your own server on your own internal network.

Press Next.

5. Fill in the Logon Information

This is the name and password that logs you on to your email mail box and is typically different for each user.

Press Next.

6. Finish configuration

Press Finish.

7. Check

You should see something similar to the following:

8. Check the port settings

Highlight the account you have created (as shown), then select Properties.

The properties dialog box enables you to modify your setup.

Select the Advanced tab.

Notice the outgoing mail and incoming mail port numbers. In your configuration these refer to the port number you will define as Client Ports in FreeProxy. When you get to configure FreeProxy as described below, your client port for SMTP MUST be the same as defined here. In this case 25. You can change these port numbers, as long as the client port in FreeProxy matches the port numbers you set here. For example, you could pick 9765 for the Outgoing mail client. If you do, then when you configure the SMTP option in FreeProxy, you MUST use 9765 as the client port.

Make any changes if you need to and press OK to accept.

9. Configure FreeProxy

Continue with configuring FreeProxy here.

MS-OUTLOOK Configuration

1. Start the configuration

From the Outlook menu, select
Tools è Services. Click on the Add button
You should see the same as in the picture below.

Highlight Internet Email (as shown) and press OK.

2. Fill in your contact information

Proceed with configuring the Servers. Press the Servers Tab.

3. Configure Servers

You will notice that here we use YOUR server names. NOT the ISP server names. The connection to the ISP is handled by FreeProxy. What you fill in here is the connection to the server running FreeProxy. This is your own server on your own internal network.

The name and password that logs you on to your email mail box is typically different for each user.

Proceed with the configuring the connection.

Click the Connection tab.

4. Configure Connections

Check that you are connecting using the LAN. Check the radio button as shown below.

Proceed with checking the Advanced options.

Click the Advanced tab.

5. Check the Advanced settings.

Notice the outgoing mail and incoming mail port numbers. In your configuration these refer to the port number you will define as Client Ports in FreeProxy. When you get to configure FreeProxy as described below, your client port for SMTP MUST be the same as defined here. In this case 25. You can change these port numbers, as long as the client port in FreeProxy matches the port numbers you set here. For example, you could pick 9765 for the Outgoing mail client. If you do, then when you configure the SMTP option in FreeProxy, you MUST use 9765 as the client port.

Press Apply to accept the configuration.

Press OK

Exit from Outlook and then start Outlook again before the changes take effect.

FREEPROXY Configuration

1. Start the FreeProxy Control Centre.

2. Select the Ports button to define an SMTP connection.

The Define/Change change Port Redirection dialog box is shown below.

The dialog box on the right is taken from your configuration of MS Outlook . A very similar dialog box is presented if you were configuring Outlook Express and the same thing applies. The point being made is that the Port Number defined in the email client MUST be the same as the Client Port in FreeProxy. It can be any number from 1 to 65000 however 25 is usual. You can change this number as long as the two numbers shown below are the same.

The SMTP server in FreeProxy is the server name of your ISP. Likewise, the server port is the port number for your ISP's SMTP server. The default is 25 and this very seldom is different. The server port number and the client port number are completely independent. Changing the Client port number does NOT mean that you also have to change the server port. For example, the two ringed numbers could both have been 3457, whereas the Server Port would remain at 25.

3. Select the Ports button to define a POP connection.

The same point is being made here as previously with the SMTP connection. This time the Incoming mail connection uses the POP server and the Outlook Express Advanced properties is shown to illustrate the point.


Tunnel

A Tunnel is connection between two networks through which messages are passed from one network to the other. Typically a tunnel is an application level routing method unlike a gateway which modifies the addresses in the protocol. In the case of FreeProxy, it is possible to tunnel any TCP traffic from one network to another. The source of the tunnel is any client that can connect to one of the port definitions defined using the PORT option. On receipt of the tunnel traffic from the client, FreeProxy will redirect the traffic, unchanged to the server specified as the "proxy". Freeproxy v1 was a pure tunnel. No interpretation of the message was done. V2 did some examination of the message to all URL filtering. V3 has implemented this form of tunnelling as well as and HTTP proxy. The SMTP, POP and 'None' protocols in the port definitions actually are implemented as tunnels.

Resolving Port Conflicts

A computer must "listen" on unique port numbers. A port is claimed by a program on a first-come-first-served basis. If you are running other software in your computer which uses any of the ports you have specified for use by FreeProxy, FreeProxy will not be able start.

If FreeProxy encouters a problem, it will output error messages.

Reading Parameters from 'd:\freeproxy\test.cfg'
Fri 14 Mar 2003 17:21:18 : #10048: WSAEADDRINUSE: Address already in use. Function: bind()
Fri 14 Mar 2003 17:21:18 : #1003: Startup: Error attempting to listen on port 8080. Check whether other copies of this program are running.

Note: to see these errors, you trace level must be set to "Warnings" or "Full Trace". Further you must either log these to the screen by running FreeProxy in Console Mode or have defined a log file to receive the messages.

To verify the port assignments currently being used in your system use the netstat command from the command line as follows:

H:\>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP MYSERVER01:epmap MYSERVER01:0 LISTENING
TCP MYSERVER01:microsoft-ds MYSERVER01:0 LISTENING
TCP MYSERVER01:25 MYSERVER01:0 LISTENING
TCP MYSERVER01:110 MYSERVER01:0 LISTENING
TCP MYSERVER01:8080 MYSERVER01:0 LISTENING

You can see a list of all the listening ports currently being used by your computer. Select one that is not being used.

Accessing FTP sites

FTP sites can be accessed via FreeProxy. Often, a link might direct the browser to the FTP site in which can the URL is filled in for you. To access the site yourself, you can fill in the URL as follows

ftp://<user>:<password>@<ftp site>:<port>

this is standard used by many browsers.

<user>, <password> and <port> are optional.

For example:

ftp://tomasra:mypass1@alpharand.com
ftp://ftp.microsoft.com:21 (which is functionally equivalent to ftp://ftp.microsoft.com)

Managing Timeouts

Timeout values you find in the Port and FreeWeb Definition help to ensure that the FreeProxy does not "hang", waiting for communication events such as waiting endlessly for a connection to be made. At some point a decision has to be made that the remote system is either not available or has itself stopped responding. This is therefore a form of communication safety valve.

A connection timeout is the amount of time FreeProxy will wait for the remote computer to honour the connection request. The read/write timeout is the number of seconds that FreeProxy/FreeWeb will wait for the remote system to accept data from the proxy/web server or the number of seconds to wait for the remote to supply data. If either of these timeouts are exceeded, then the connection is closed and FreeProxy moves on.

On a fast network (intranet), communication events are likely to occur quicker than they would over a slow network to a remote computer via many hops. The advantage of setting the timeout value to a smaller number is that on average the software will start fewer connections, and use less resources that allowing it to wait for longer periods for errant servers to respond.

For an intranet, a connection time of 10 seconds and a read/write time of 5 seconds is typical.

On the internet, a connection time of 20 seconds and read/write time of 10 seconds would normally retrieve pages without side-effects.

If you find that your web page has errors, try increasing the timeout values individually.

Local Binding

A server is usually addressed by more than one IP address. Each physical network interface is assigned an IP address, each dialup connection is allocated an IP address and any other virtually defined interfaces are also assigned IP addresses. It is not unusual for a server to have more than one IP address.

You can use the IPConfig command from the command prompt to determine the IP addresses on your system, for example

C:\>ipconfig /all

Windows 2000 IP Configuration

Host Name . . . . . . . . . . . . : SERVER01
Primary DNS Suffix . . . . . . .  : alpharand.net
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : alpharand.net

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : SURECOM EP-320X-R 100/10/M PCI Adapter
Physical Address. . . . . . . . . : 02-32-43-41-DE-51
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.10.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . : 192.168.10.1

Ethernet adapter {6ABCD916-6567-4D65-B340-A3CCCD4C7D75}:

Connection-specific DNS Suffix .  : somewhere.com
Description . . . . . . . . . . . : NOC Extranet Access Adapter
Physical Address. . . . . . . . . : 84-65-53-53-12-00
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 0.0.0.0
Subnet Mask . . . . . . . . . . . : 0.0.0.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . :

PPP adapter myISP 56k:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface
Physical Address. . . . . . . . . : AA-AA-AA-CC-03-20
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 200.162.134.23
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 200.162.134.0
DNS Servers . . . . . . . . . . . : 134.34.143.222
                                    201.223.120.22
NetBIOS over Tcpip. . . . . . . . : Disabled

The above listing shows 3 interfaces on IP addresses, 192.168.10.1, 0.0.0.0 and 200.162.134.23. FreeProxy will only list those which are non-zero ( 192.168.10.1 and 200.162.134.23).

The local binding feature enables you to request that FreeProxy (and FreeWeb) either listens on all Interfaces (all 3 above) or only on one of them.

If you select 'all', (by leaving the check box Use Local Binding unchecked), then anyone can connect to your server. Typically, you would want to check this box, and select a specific IP address for any of the proxy servers. Further, you would want to select only those users on the local network (intranet) and not allow users from the internet to connect to your proxy. You would also want to check this box if you were setting up an intranet web server and did not want outside users to access your web server. This is a strong security feature. Otherwise, to define a web server that is available to the whole world, leave this check box, unchecked.

Note: For servers that use this feature (by checking the check box and selecting an IP address), you should allocate a fixed IP address rather than obtain a DHCP lease. If you have used DHCP to obtain your IP address, and the lease expires and a new IP address is allocated, FreeProxy will still only know of the last IP address you selected and will no longer work with the selected parameters if your system's IP address has changed. The best use of this feature is with a fixed IP address on a physical network card, or on a permanently allocated IP address.


License Agreement

FreeProxy License V3 and prior versions

Plain English

This license is not a watertight legal document. Please read it in the spirit in which it is intended.

The spirit of the license

This is extremely useful software. You are one of an expanding community of users who use this software for normal day to day operations in their computer environments. It’s even more attractive in the fact that its free. Value for money is therefore infinite. Anyone can use this software but do so, however, at their own risk. If you are unsure, don’t use it. You do not own the software but have the right to use it for any legal purpose with no further claim on the author. The rights of ownership are vested in the author only.

Copying

The software can be copied as many times as you wish and given to anyone you wish as long as the complete package is copied.

Warrantees and Guarantees

There are none. Use entirely at your own risk. Any and all problems, direct and indirect, resulting from the use of the software, are entirely the responsibility of the user and not the author.

Selling

This and prior versions of the product may not be sold. It is freely available to anyone who wants to use it. It may be distributed as a freeware product as long as any charge levied to the end-user, or customer, is for the medium and not the software.

Source Code

This software is distributed as binary executable code only. The source code is not available.